// /**
//  * 场景协调器使用示例
//  * 
//  * 展示如何在 ECS 系统中使用场景协调器创建和管理游戏对象
//  * 
//  * @author AI Assistant
//  * @date 2025-11-26
//  */

// import { ecs } from "../../core/ecs/ECS";
// import { Vec3 } from "cc";
// import { sceneCoordinator } from "../coordinator/SceneCoordinator";
// import { renderSystem } from "../ecs/render/renderSystem";
// import { ViewComponent } from "../ecs/component/ViewComponent";

// /**
//  * 示例：创建玩家实体
//  */
// export async function createPlayerExample(): Promise<void> {
//     console.log('=== 创建玩家实体示例 ===');
    
//     // 1. 创建 ECS 实体
//     const playerEntity = ecs.getEntity(ecs.Entity);
    
//     // 2. 使用渲染系统创建视图
//     const playerNode = await renderSystem.createEntityView(
//         playerEntity,
//         'game',              // bundle 名称
//         'prefabs/player',    // 预制体路径
//         'game',              // 层级名称
//         new Vec3(0, 0, 0)    // 初始位置
//     );
    
//     if (playerNode) {
//         console.log('✅ 玩家实体创建成功');
//         console.log('  - 实体 ID:', playerEntity.eid);
//         console.log('  - 节点名称:', playerNode.name);
//     }
// }

// /**
//  * 示例：批量创建敌人
//  */
// export async function createEnemiesExample(count: number = 10): Promise<void> {
//     console.log(`=== 批量创建 ${count} 个敌人 ===`);
    
//     const enemies: ecs.Entity[] = [];
    
//     // 1. 创建多个实体
//     for (let i = 0; i < count; i++) {
//         const enemy = ecs.getEntity(ecs.Entity);
//         enemies.push(enemy);
//     }
    
//     // 2. 批量创建视图
//     const nodes = await renderSystem.createEntityViewBatch(
//         enemies,
//         'game',
//         'prefabs/enemy',
//         'game'
//     );
    
//     // 3. 设置随机位置
//     nodes.forEach((node, index) => {
//         const x = (Math.random() - 0.5) * 500;
//         const y = (Math.random() - 0.5) * 500;
//         node.setPosition(x, y, 0);
//     });
    
//     console.log(`✅ 创建了 ${nodes.length} 个敌人`);
// }

// /**
//  * 示例：创建 UI 元素
//  */
// export async function createUIExample(): Promise<void> {
//     console.log('=== 创建 UI 元素示例 ===');
    
//     // 1. 创建血条实体
//     const healthBarEntity = ecs.getEntity(ecs.Entity);
    
//     // 2. 创建视图（添加到 UI 层）
//     const healthBarNode = await renderSystem.createEntityView(
//         healthBarEntity,
//         'game',
//         'prefabs/ui/healthbar',
//         'ui',  // 添加到 UI 层
//         new Vec3(0, 300, 0)
//     );
    
//     if (healthBarNode) {
//         console.log('✅ 血条 UI 创建成功');
        
//         // 获取 ViewComponent 并访问 UI 组件
//         const viewComp = healthBarEntity.get(ViewComponent);
//         if (viewComp && viewComp.label) {
//             viewComp.label.string = 'HP: 100/100';
//         }
//     }
// }

// /**
//  * 示例：使用场景协调器直接创建节点
//  */
// export async function directNodeCreationExample(): Promise<void> {
//     console.log('=== 直接创建节点示例 ===');
    
//     // 1. 实例化预制体到背景层
//     const bgNode = await sceneCoordinator.instantiatePrefab(
//         'game',
//         'prefabs/background',
//         {
//             layerName: 'background',
//             position: new Vec3(0, 0, -100),
//             name: 'Background'
//         }
//     );
    
//     if (bgNode) {
//         console.log('✅ 背景创建成功:', bgNode.name);
//     }
    
//     // 2. 创建空节点
//     const container = sceneCoordinator.createNode('EnemyContainer', 'game');
//     console.log('✅ 容器节点创建成功:', container.name);
    
//     // 3. 在容器中创建子节点
//     const enemy = await sceneCoordinator.instantiatePrefab(
//         'game',
//         'prefabs/enemy',
//         {
//             parent: container,
//             position: new Vec3(0, 0, 0)
//         }
//     );
    
//     if (enemy) {
//         console.log('✅ 敌人创建到容器中:', enemy.name);
//     }
// }

// /**
//  * 示例：管理场景层级
//  */
// export function layerManagementExample(): void {
//     console.log('=== 场景层级管理示例 ===');
    
//     // 1. 获取所有层级名称
//     const layerNames = sceneCoordinator.getLayerNames();
//     console.log('可用层级:', layerNames);
    
//     // 2. 获取特定层级
//     const gameLayer = sceneCoordinator.getLayer('game');
//     if (gameLayer) {
//         console.log('游戏层节点数量:', gameLayer.children.length);
//     }
    
//     // 3. 清理特定层级
//     sceneCoordinator.clearLayer('effect');
//     console.log('✅ 特效层已清理');
    
//     // 4. 打印统计信息
//     sceneCoordinator.printStatistics();
// }

// /**
//  * 示例：完整的游戏流程
//  */
// export async function completeGameFlowExample(): Promise<void> {
//     console.log('\n========== 完整游戏流程示例 ==========\n');
    
//     // 1. 创建玩家
//     await createPlayerExample();
    
//     // 2. 创建敌人
//     await createEnemiesExample(5);
    
//     // 3. 创建 UI
//     await createUIExample();
    
//     // 4. 创建背景
//     await directNodeCreationExample();
    
//     // 5. 查看统计信息
//     layerManagementExample();
    
//     console.log('\n========== 示例完成 ==========\n');
// }

// /**
//  * 示例：清理和重置
//  */
// export function cleanupExample(): void {
//     console.log('=== 清理示例 ===');
    
//     // 1. 清理所有层级
//     sceneCoordinator.clearAllLayers();
//     console.log('✅ 所有层级已清理');
    
//     // 2. 清理预制体缓存
//     sceneCoordinator.clearPrefabCache();
//     console.log('✅ 预制体缓存已清理');
    
//     // 3. 清理 ECS
//     ecs.clear();
//     console.log('✅ ECS 已清理');
    
//     // 4. 查看清理后的统计
//     sceneCoordinator.printStatistics();
// }

// // ========== 导出便捷函数 ==========

// /**
//  * 快速测试函数 - 在控制台调用
//  */
// export const SceneCoordinatorExamples = {
//     createPlayer: createPlayerExample,
//     createEnemies: createEnemiesExample,
//     createUI: createUIExample,
//     directCreate: directNodeCreationExample,
//     layerManagement: layerManagementExample,
//     completeFlow: completeGameFlowExample,
//     cleanup: cleanupExample
// };

// // 在控制台使用：
// // import { SceneCoordinatorExamples } from 'db://assets/scripts/example/SceneCoordinatorExample';
// // await SceneCoordinatorExamples.completeFlow();

